﻿#include "iniConfig.h"
#include <QStringList>
#include <QProcessEnvironment>


QCOMMWIDGETS_BEGIN_NAMESPACE

IniConfig*  IniConfig::m_instance = nullptr;

//返回IniConfig类指针
IniConfig* IniConfig::getIniConfigPtr(QString path)
{
    if(m_instance == nullptr)
    {
        m_instance = new IniConfig(path);
    }
	
    return m_instance;
}

//初始化构造函数
IniConfig::IniConfig(QString path)
{
	IniConfigFile = new QSettings(path,QSettings::IniFormat);
    initINI();
}

//初始化
void IniConfig::initINI()
{
    IniConfigFile->setIniCodec("UTF-8");
    // 获取所有节点和key
    QStringList str = IniConfigFile->allKeys();

    foreach(QString key,str)
    {
        qInfo("%s:%s",key.toUtf8().data(),IniConfigFile->value(key).toString().toUtf8().data());// 读取 savePath 的值
        AllConfig[key] = IniConfigFile->value(key).toString();
    }
}

//查找键值
QString IniConfig::findvalueString(QString key)
{
    if(AllConfig.contains(key))
    {
        return  AllConfig[key];
    }
    else
    {
        return "";
    }
}

//查找键值
int IniConfig::findvalueInt(QString key)
{
    if(AllConfig.contains(key))
    {
        return  AllConfig[key].toInt();
    }
    else
    {
        return -1;
    }
}

//查找键值
double IniConfig::findvalueDouble(QString key)
{
    if(AllConfig.contains(key))
    {

        return  AllConfig[key].toDouble();
    }
    else
    {
        return -1;
    }
}
QCOMMWIDGETS_END_NAMESPACE
